home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / puma.lha / puma / src / Makefile < prev    next >
Makefile  |  1992-09-25  |  3KB  |  119 lines

  1. BIN    = $(HOME)/bin
  2. LIB    = $(HOME)/lib
  3. MC    = MC
  4.  
  5. SED    = sed -e 's/!!$$/WriteNl (f);/' \
  6.           -e 's/!\([^!]*\)!$$/WriteS (f, "\1"); WriteNl (f);/' \
  7.           -e 's/!\([^!]*\)!/WriteS (f, "\1");/g' \
  8.           -e "s/@\([^@]*\)@$$/WriteS (f, '\1'); WriteNl (f);/" \
  9.           -e "s/@\([^@]*\)@/WriteS (f, '\1');/g"
  10.  
  11. SOURCES    = Scanner.mi Scanner.md Parser.md Parser.mi Tree.md Tree.mi Tree2.md Tree2.mi \
  12.       Semantics.md Semantics.mi Optimize.md Optimize.mi Mod.md Mod.mi C.md C.mi puma.mi
  13.  
  14. all:    puma_boot
  15.  
  16. puma:    $(SOURCES) Scanner.Tab Parser.Tab puma_boot
  17.  
  18. puma_boot:
  19.     echo p puma | mc -d ../../reuse/src
  20.  
  21. # swap all byte pairs of the files Scanner.Tab and Parser.Tab
  22.  
  23. bin.conv:
  24.     dd conv=swab < Scanner.Tab > .Scanner.Tab; mv .Scanner.Tab Scanner.Tab
  25.     dd conv=swab < Parser.Tab > .Parser.Tab; mv .Parser.Tab Parser.Tab
  26.  
  27. Scanner.rpp Parser.lalr:    puma.pars
  28.     cg -xzj puma.pars;
  29.  
  30. puma.rex:    puma.scan Scanner.rpp
  31.     rpp < puma.scan > puma.rex;
  32.  
  33. Scanner.md Scanner.mi Scanner.Tab:    puma.rex
  34.     rex -d puma.rex;
  35.  
  36. Parser.md:    Parser.lalr
  37.     lalr -d -v Parser.lalr;
  38.  
  39. Parser.mi Parser.Tab:    Parser.lalr
  40.     lalr -v Parser.lalr;
  41.  
  42. Tree.md:    puma.cg
  43.     echo SELECT AstIn Ast Common PumaIn Puma | cat - puma.cg | cg -dimRyq
  44.  
  45. Tree.mi:    puma.cg
  46.     echo SELECT AstIn Ast Common PumaIn Puma | cat - puma.cg | cg -imRyq
  47.  
  48. Tree2.md:    puma.cg
  49.     echo SUBUNIT Tree2 SELECT AstIn Ast | cat - puma.cg | cg -dig
  50.  
  51. Tree2.mi:    puma.cg
  52.     echo SUBUNIT Tree2 SELECT AstIn Ast | cat - puma.cg | cg -ig
  53.  
  54. Tree.TS:    puma.cg
  55.     echo SELECT PumaIn Puma | cat - puma.cg | cg -4
  56.  
  57. Semantics.md Semantics.mi:    sem.puma Tree.TS
  58.     puma -dinw sem.puma;
  59.  
  60. Optimize.md Optimize.mi:    opt.puma Tree.TS
  61.     puma -diwk opt.puma;
  62.  
  63. Mod.md Mod.mi:    mod.puma Tree.TS
  64.     $(SED) < mod.puma | puma -dinw;
  65.  
  66. C.md C.mi:    c.puma Tree.TS
  67.     $(SED) < c.puma | puma -dinw;
  68.  
  69. puma.mi:    puma.sed
  70.     $(SED) < puma.sed > puma.mi
  71.  
  72. install:    puma puma.sh $(LIB)/puma
  73.     if test $(LIB) = $(BIN); then echo error: BIN = LIB; false; else true; fi
  74.     sed 's;LIB;$(LIB);g' < puma.sh > $(BIN)/puma
  75.     chmod a+rx $(BIN)/puma
  76.     install -c -s -m 755 puma $(LIB)/puma
  77.     install -c -m 644 Scanner.Tab $(LIB)/puma
  78.     install -c -m 644 Parser.Tab $(LIB)/puma
  79.     install -c -m 644 TypeTab.c $(LIB)/puma
  80.     install -c -m 644 TypeTab.m $(LIB)/puma
  81.  
  82. # installation directories
  83.  
  84. $(LIB)/puma:    $(LIB)
  85.     sh -c "if test ! -d $(LIB)/puma; then mkdir $(LIB)/puma; else true; fi"
  86.  
  87. m2c:
  88.     # co RCS/*
  89.     rm -f ../m2c/*.[hc]
  90.     cp [SP]*Tab TypeTab.[mc] ../m2c
  91.     ln *.m[id] ../m2c
  92.     cd ../m2c; make sources M2FLAGS="-c -d../../reuse/src"
  93.     cd ../m2c; rm -f *.m[id]
  94.  
  95. # support for mkid
  96.  
  97. pumaId:    puma.rex
  98.     echo SCANNER pumaId | cat - puma.rex | \
  99.     sed 's/\(RETURN 1    \)/yyEcho; IO.WriteNl (IO.StdOutput); \1/' | \
  100.     $(BIN).t/rex -sd;
  101.     sed 's/@/pumaId/' < ../../front/src/Id.mi > pumaIdDrv.mi
  102.     echo p pumaIdDrv | mc -d ../../reuse/src
  103.     mv pumaIdDrv pumaId
  104.  
  105. installId:    pumaId $(LIB)/Id
  106.     echo exec $(LIB)/Id/pumaId -l$(LIB)/Id "2> /dev/null" > $(BIN)/pumaId
  107.     chmod a+rx $(BIN)/pumaId
  108.     install -c -m 644 pumaId.Tab $(LIB)/Id
  109.     install -c -s -m 755 pumaId $(LIB)/Id
  110.  
  111. $(LIB)/Id:    $(LIB)
  112.     sh -c "if test ! -d $(LIB)/Id; then mkdir $(LIB)/Id; else true; fi"
  113.  
  114. cleanId:
  115.     rm -f pumaId*
  116.  
  117. clean:    cleanId
  118.     rm -f _Debug core *.[dior] [A-SU-Za-z]*.m Tree*.m *.bak
  119.